/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Front.Presentador;

import Excepciones.NoConexionException;
import Front.Contrato.IContratoInicio;
import Front.Vista.GestorDescarga;
import Logica.Comandos.ComandoControlarSession;
import Logica.Comandos.ComandoIniciarDescarga;
import Logica.Comandos.ComandoObtenerListaArchivos;
import Logica.Comandos.ComandoValidarUsuario;
import Logica.Fabricas.Comando;
import ObjetoDominio.Servidor;
import ObjetoDominio.Usuario;
import Session.Session;
import javax.swing.JOptionPane;

/**
 *Clase que hace de presentador para la vista que se encarga del inicio de session
 * @author familia
 */
public class PresentadorInicio {
    
    private IContratoInicio _vista;
    
    public PresentadorInicio(IContratoInicio vista){
        _vista = vista;
    }
    
    /**
     * Metodo que valida que sea un usuario valido para el acceso al sistema
     */
    public void IniciarSession(){
        try {
            Usuario usuario = new Usuario();
            usuario.setNombre(_vista.getNombreUsuario());
            usuario.setPassword(_vista.getPassword());
            Comando comando = new ComandoValidarUsuario(Session.getServidorConectado(), usuario);
            if( (Boolean)comando.Ejecutar()){
                _vista.getVentana().dispose();
                Session.setUsuarioConectador(usuario);
                Comando comando2 = new ComandoObtenerListaArchivos();
                comando2.Ejecutar();
                new GestorDescarga().setVisible(true);
            }
            else{
                JOptionPane.showMessageDialog(_vista.getVentana(),
                    "Los datos no son correctos!",
                    "Error de Credenciales",
                    JOptionPane.ERROR_MESSAGE);
            }
                
        } catch (NoConexionException e) {
            JOptionPane.showMessageDialog(_vista.getVentana(),
                            "No existe Conexion con el servidor!",
                            "Error de Conexion",
                            JOptionPane.ERROR_MESSAGE);
            Session.LimpiarSession();
        }
        
    }
    
    public void RegistrarUsuario(){
        
        if(_vista.getPasswordRegistro1().equals(_vista.getPasswordRegistro2())){
            Usuario usuario = new Usuario();
            usuario.setNombre(_vista.getNombreUsuarioRegistro());
            usuario.setPassword(_vista.getPasswordRegistro1());
            
        }
        else
            JOptionPane.showMessageDialog(_vista.getVentana(),
                    "Las contraseña no coinciden!",
                    "Error de Credenciales",
                    JOptionPane.ERROR_MESSAGE);
        
    }
}
